A low-density parity check (LDPC) code is known as a type of error correction code. The LDPC code has a strong error correcting capability. However, the LPDC code has a relatively short minimum distance between code words. Thus, even a small number of errors in encoded data to be decoded may cause erroneous corrections at a certain probability. The erroneous correction means a failure to accurately detect errors contained in encoded data, with the result that code words obtained are erroneous. Thus, decoded data output by an LDPC decoder may contain errors.